home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume20 / epsonps / part02 < prev    next >
Encoding:
Text File  |  1991-05-25  |  22.9 KB  |  564 lines

  1. Newsgroups: comp.sources.misc
  2. From: Russell Lang <rjl@monu1.cc.monash.edu.au>
  3. Subject:  v20i015:  epsonps - Epson to Postscript converter, Part02/02
  4. Message-ID: <1991May23.144920.20722@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 37aa808c6ecd56b64f6539bd79f5832c
  6. Date: Thu, 23 May 1991 14:49:20 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Russell Lang <rjl@monu1.cc.monash.edu.au>
  10. Posting-number: Volume 20, Issue 15
  11. Archive-name: epsonps/part02
  12.  
  13. #! /bin/sh
  14. # This is a shell archive.  Remove anything before this line, then unpack
  15. # it by saving it into a file and typing "sh file".  To overwrite existing
  16. # files, type "sh file -c".  You can also feed this as standard input via
  17. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  18. # will see the following message at the end:
  19. #        "End of shell archive."
  20. # Contents:  epsonps.1 epsonps.pro Makefile
  21. # Wrapped by rjl@monu1 on Thu May 23 10:53:28 1991
  22. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  23. if test -f epsonps.1 -a "${1}" != "-c" ; then 
  24.   echo shar: Will not over-write existing file \"epsonps.1\"
  25. else
  26. echo shar: Extracting \"epsonps.1\" \(2920 characters\)
  27. sed "s/^X//" >epsonps.1 <<'END_OF_epsonps.1'
  28. X.\" man page for epsonps
  29. X.ds PS P\s-2OST\s+2S\s-2CRIPT\s+2
  30. X.TH EPSONPS 1 "7 May 1991"
  31. X.SH NAME
  32. Xepsonps \- convert an Epson printer file to \*(PS
  33. X.SH SYNOPSIS
  34. X.B epsonps
  35. X[
  36. X.B \-L
  37. X]
  38. X[
  39. X.B \-R
  40. X]
  41. X[
  42. X.B \-c
  43. X]
  44. X[
  45. X.B \-d
  46. X]
  47. X[
  48. X.B \-e
  49. X]
  50. X[
  51. X.B \-l
  52. X.I leftmargin
  53. X]
  54. X[
  55. X.B \-o
  56. X.I outfile
  57. X]
  58. X[
  59. X.B \-q
  60. X]
  61. X[
  62. X.B \-t
  63. X.I papertype
  64. X]
  65. X.IR file
  66. X.br
  67. X.SH DESCRIPTION
  68. XThe program
  69. X.B epsonps
  70. Xconverts epson printer codes from an input file 
  71. X.IR file
  72. Xto \*(PS on standard output.  
  73. XUnknown, ignored or invalid epson codes are printed on standard error output.
  74. XThe program
  75. X.B epsonps
  76. Xis an excellent ASCII listing printer.
  77. XThe program
  78. X.B epsonps
  79. Xcan convert Epson LX-800 codes, Epson LQ-800 codes, and IBM text screen dumps.
  80. X.SH OPTIONS
  81. XBoolean flags that are turned on by
  82. Xcertain letters (such as \-e to select elite pitch) can be turned off
  83. Xby following the option immediately with a 0 (as in \-e0).  The
  84. Xoptions that this can be used with are \fBLRcdesq\fP.
  85. XThe command line switches are:
  86. X.IP "\fB\-L\fP"
  87. XAuto linefeed.  Add linefeed after carriage return.
  88. X.IP "\fB\-R\fP"
  89. XAuto carriage return.  Add carriage return after linefeed.  
  90. XUseful for printing UNIX files which only have linefeed at end of lines.
  91. X.IP "\fB\-c\fP"
  92. XCondensed mode.  Print characters at 60% of their normal width.
  93. X.IP "\fB\-d\fP"
  94. XDisable debug mode.  By default, unknown, ignored or invalid epson 
  95. Xcodes are output to stderr.
  96. X.IP "\fB\-e\fP"
  97. XElite mode.  Print characters at elite pitch (12cpi)
  98. Xinstead of the default pica pitch (10cpi).
  99. X.IP "\fB\-l\fP\fIleftmargin\fP"
  100. XSet the left margin to \fIleftmargin\fP pica width characters.  
  101. XDefault left margin is 0.
  102. X.IP "\fB\-q\fP"
  103. XEpson LQ-800 mode.  Default is Epson LX-800 mode.
  104. X.IP "\fB\-o\fP\fIoutfile\fP"
  105. XSet the output file to \fIoutfile\fP.  Default is stdout.
  106. X.IP "\fB\-s\fP"
  107. XSelect screen dump mode.  
  108. XAll characters except carriage return and line feed are printable.  
  109. XDefault is off.
  110. X.IP "\fB\-t\fP\fIpapertype\fP"
  111. XSet the paper type to \fIpapertype\fP.  
  112. XValid paper types include:
  113. X.RS
  114. X.nf
  115. X.ta 1.0i
  116. X a4     297mm by 210mm, 70 lines/page 
  117. X a4-11  11 by 8.5 inch mapped to a4, 66 lines/page
  118. X a4-12  12 by 8.5 inch mapped to a4, 72 lines/page
  119. X a4-15w 11 by 15 inch mapped to a4 rotated, 66 lines/page
  120. X 11     11 by 8.5 inch, 66 lines/page
  121. X 11-15w 11 by 15 inch mapped to 11 by 8.5 inch rotated, 66 lines/page
  122. X.fi
  123. X.RE
  124. XDefault is \fIa4\fP.
  125. XOther formats can be easily added by modifying the source code.
  126. X.SH FILES
  127. X.RS
  128. X.nf
  129. X.ta 2.5i
  130. Xepsonps.pro   The \*(PS prolog.  
  131. X.fi
  132. X.RE
  133. X.PP
  134. XThe prolog file \fIepsonps.pro\fP is needed by \fBepsonps\fP.
  135. XAn attempt is made to open \fIepsonps.pro\fP in the current directory, 
  136. Xand then in the same directory as the epson executable.
  137. X.SH "SEE ALSO"
  138. Xlpr(1)
  139. X.SH NOTES
  140. X\*(PS is a registered trademark of Adobe Systems Incorporated.
  141. X.SH AUTHORS
  142. XJonathan Greenblatt <jonnyg@rover.umd.edu>
  143. X.br
  144. XMark Alexander <uunet!amdahl!drivax!alexande@umd5.UMD.EDU>
  145. X.br
  146. XRussell Lang <rjl@monu1.cc.monash.edu.au>
  147. END_OF_epsonps.1
  148. if test 2920 -ne `wc -c <epsonps.1`; then
  149.     echo shar: \"epsonps.1\" unpacked with wrong size!
  150. fi
  151. # end of overwriting check
  152. fi
  153. if test -f epsonps.pro -a "${1}" != "-c" ; then 
  154.   echo shar: Will not over-write existing file \"epsonps.pro\"
  155. else
  156. echo shar: Extracting \"epsonps.pro\" \(17037 characters\)
  157. sed "s/^X//" >epsonps.pro <<'END_OF_epsonps.pro'
  158. X% Prolog for epsonps.c, by Russell Lang 19910507
  159. X/M {moveto} def
  160. X/L {lineto} def
  161. X/S {show} def
  162. X/pica    { /fwidth xdpi 10 idiv def /fheight ydpi 6 idiv def } def
  163. X/elite   { /fwidth xdpi 12 idiv def /fheight ydpi 6 idiv def } def
  164. X/fifteen { /fwidth xdpi 15 idiv def /fheight ydpi 6 idiv def } def
  165. X/condensed  { /fwidth fwidth 3 mul 5 idiv def } def
  166. X/doublewidth { /fwidth fwidth 2 mul def } def
  167. X/doubleheight { /fwidth fwidth 2 mul def /fheight fheight 2 mul def } def
  168. X/quadheight { /fwidth fwidth 4 mul def /fheight fheight 4 mul def } def
  169. X/normalfont {/Epson findfont
  170. X  [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  171. X/boldfont {/Epson-Bold findfont
  172. X  [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  173. X/italicfont {/Epson-Oblique findfont
  174. X  [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  175. X/bolditalicfont {/Epson-BoldOblique findfont
  176. X  [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  177. X/ibmgraphfont {/IBMgraphic findfont
  178. X  [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  179. X/graphicbuf 2 string def
  180. X% copy StandardEncoding and call the new version IBMEncoding
  181. XStandardEncoding dup length array copy /IBMEncoding exch def
  182. X% Re Encode a font with IBMEncoding vector
  183. X/IBMEncode {
  184. X  /BasefontDict BasefontName findfont def
  185. X  /NewfontDict BasefontDict maxlength dict def
  186. X  BasefontDict
  187. X  { exch dup /FID ne
  188. X    { dup /Encoding eq
  189. X      { exch pop IBMEncoding NewfontDict 3 1 roll put }
  190. X      { exch NewfontDict 3 1 roll put }
  191. X      ifelse
  192. X    }
  193. X    { pop pop }
  194. X    ifelse
  195. X  } forall
  196. X  NewfontDict /FontName NewfontName put
  197. X  NewfontName NewfontDict definefont pop
  198. X} def
  199. X% Load a vector into the current Encoding Vector
  200. X/EncodingLoad { aload length 2 idiv
  201. X  {Encoding 3 1 roll put} repeat} def
  202. X% Create new Epson fonts from Courier fonts, with IBMEncoding
  203. X/BasefontName /Courier def /NewfontName /Epson def
  204. XIBMEncode
  205. X/BasefontName /Courier-Bold def /NewfontName /Epson-Bold def
  206. XIBMEncode
  207. X/BasefontName /Courier-BoldOblique def /NewfontName /Epson-BoldOblique def
  208. XIBMEncode
  209. X/BasefontName /Courier-Oblique def /NewfontName /Epson-Oblique def
  210. XIBMEncode
  211. X% add the extra character encodings for IBMEncoding
  212. X[ 128 /Ccedilla 129 /udieresis 130 /eacute 131 /acircumflex
  213. X  132 /adieresis 133 /agrave 134 /aring 135 /ccedilla 136 /ecircumflex
  214. X  137 /edieresis 138 /egrave 139 /idieresis 140 /icircumflex 141 /igrave
  215. X  142 /Adieresis 143 /Aring 144 /Eacute
  216. X  145 /ae % not in Courier.afm, but seems to be present
  217. X  146 /AE % not in Courier.afm, but seems to be present
  218. X  147 /ocircumflex 148 /odieresis 149 /ograve 150 /ucircumflex 151 /ugrave
  219. X  152 /ydieresis 153 /Odieresis 154 /Udieresis 155 /cent 156 /sterling 157 /yen
  220. X  158 /.notdef % Peseta
  221. X  159 /florin 160 /aacute 161 /iacute 162 /oacute 163 /uacute 164 /ntilde
  222. X  165 /Ntilde 166 /ordfeminine 167 /ordmasculine 168 /questiondown
  223. X  169 /.notdef % logical ??
  224. X  170 /.notdef % logical not
  225. X  171 /.notdef % half
  226. X  172 /.notdef % quarter
  227. X  173 /exclamdown 174 /guillemotleft 175 /guillemotright
  228. X]
  229. X/Epson findfont begin EncodingLoad end
  230. X% International character sets
  231. X/USA [ 35 /numbersign 36 /dollar 64 /at
  232. X  91 /bracketleft 92 /backslash 93 /bracketright 94 /asciicircum 96 /quoteleft
  233. X  123 /braceleft 124 /bar 125 /braceright 126 /asciitilde ] def
  234. X/France [ 35 /numbersign 36 /dollar 64 /agrave
  235. X  91 /ring 92 /ccedilla 93 /section 94 /asciicircum 96 /quoteleft
  236. X  123 /eacute 124 /ugrave 125 /egrave 126 /dieresis ] def
  237. X/Germany [ 35 /numbersign 36 /dollar 64 /section
  238. X  91 /Adieresis 92 /Odieresis 93 /Udieresis 94 /asciicircum 96 /quoteleft
  239. X  123 /adieresis 124 /odieresis 125 /udieresis 126 /germandbls ] def
  240. X/UnitedKingdom [ 35 /sterling 36 /dollar 64 /at
  241. X  91 /bracketleft 92 /backslash 93 /bracketright 94 /asciicircum 96 /quoteleft
  242. X  123 /braceleft 124 /bar 125 /braceright 126 /asciitilde ] def
  243. X/DenmarkI [ 35 /numbersign 36 /dollar 64 /at
  244. X  91 /AE 92 /Oslash 93 /Aring 94 /asciicircum 96 /quoteleft
  245. X  123 /ae 124 /oslash 125 /aring 126 /asciitilde ] def
  246. X/Sweden [ 35 /numbersign 36 /currency 64 /Eacute
  247. X  91 /Adieresis 92 /Odieresis 93 /Aring 94 /Udieresis 96 /eacute
  248. X  123 /adieresis 124 /odieresis 125 /aring 126 /udieresis ] def
  249. X/Italy [ 35 /numbersign 36 /dollar 64 /at
  250. X  91 /ring 92 /backslash 93 /eacute 94 /asciicircum 96 /ugrave
  251. X  123 /agrave 124 /ograve 125 /egrave 126 /igrave ] def
  252. X/SpainI [ 35 /currency 36 /dollar 64 /at  % 35 should be peseta
  253. X  91 /exclamdown 92 /Ntilde 93 /questiondown 94 /asciicircum 96 /quoteleft
  254. X  123 /dieresis 124 /ntilde 125 /braceright 126 /asciitilde ] def
  255. X/Japan [ 35 /numbersign 36 /dollar 64 /at
  256. X  91 /bracketleft 92 /yen 93 /bracketright 94 /asciicircum 96 /quoteleft
  257. X  123 /braceleft 124 /bar 125 /braceright 126 /asciitilde ] def
  258. X/Norway [ 35 /numbersign 36 /currency 64 /Eacute
  259. X  91 /AE 92 /Oslash 93 /Aring 94 /Udieresis 96 /eacute
  260. X  123 /ae 124 /oslash 125 /aring 126 /udieresis ] def
  261. X/DenmarkII [ 35 /numbersign 36 /dollar 64 /Eacute
  262. X  91 /AE 92 /Oslash 93 /Aring 94 /Udieresis 96 /eacute
  263. X  123 /ae 124 /oslash 125 /aring 126 /udieresis ] def
  264. X/SpainII [ 35 /numbersign 36 /dollar 64 /aacute
  265. X  91 /exclamdown 92 /Ntilde 93 /questiondown 94 /eacute 96 /quoteleft
  266. X  123 /iacute 124 /ntilde 125 /oacute 126 /uacute ] def
  267. X/LatinAmerica [ 35 /numbersign 36 /dollar 64 /aacute
  268. X  91 /exclamdown 92 /Ntilde 93 /questiondown 94 /eacute 96 /udieresis
  269. X  123 /iacute 124 /ntilde 125 /oacute 126 /uacute ] def
  270. X% set the international character set
  271. X% this relies on all four Epson fonts using the same copy of IBMEncoding
  272. X/InternationalSet {/Epson findfont begin EncodingLoad end} def
  273. X%%BeginFont: IBMgraphic
  274. X12 dict begin % start dictionary for font
  275. X% add FontInfo dictionary
  276. X/FontInfo 2 dict dup begin
  277. X/Notice (A partial IBM PC graphic characters font by Russell Lang 19910507) readonly def
  278. X/FullName (IBMgraphic) readonly def
  279. Xend readonly def
  280. X% fill in rest of IBMgraphic dictionary
  281. X/FontName /IBMgraphic def
  282. X/PaintType 3 def   % fill or stroke
  283. X/FontType 3 def    % user defined
  284. X/FontMatrix [ 0.1 0 0 0.1 0 0 ] readonly def
  285. X/FontBBox [ 0 -2 6 8 ] readonly def
  286. X/Encoding 256 array def   % allocate the Encoding array
  287. X  0 1 255 { Encoding exch /.notdef put} for
  288. X% look up an IBM or Epson manual for explanation of these codes
  289. X[
  290. X  000 /blank 001 /face 002 /facereverse 003 /heart 004 /diamond 005 /club
  291. X  006 /spade 007 /disc 008 /discreverse 009 /circle 010 /circlereverse
  292. X  011 /male 012 /female 013 /note 014 /notes 015 /lamp
  293. X  016 /triangleright 017 /triangleleft 018 /arrowupdown 019 /exclamdouble
  294. X  020 /paragraph 021 /section 022 /I022 023 /arrowupdownunder 024 /arrowup
  295. X  025 /arrowdown 026 /arrowright 027 /arrowleft 028 /I028 029 /arrowboth
  296. X  030 /triangleup 031 /triangledown
  297. X  127 /delete 158 /peseta 169 /I169
  298. X  170 /logicalnot 171 /half 172 /quarter
  299. X  176 /lightgrey 177 /mediumgrey 178 /darkgrey
  300. X  179 /I179 180 /I180 181 /I181 182 /I182 183 /I183 184 /I184 185 /I185
  301. X  186 /I186 187 /I187 188 /I188 189 /I189 190 /I190 191 /I191 192 /I192
  302. X  193 /I193 194 /I194 195 /I195 196 /I196 197 /I197 198 /I198 199 /I199
  303. X  200 /I200 201 /I201 202 /I202 203 /I203 204 /I204 205 /I205 206 /I206
  304. X  207 /I207 208 /I208 209 /I209 210 /I210 211 /I211 212 /I212 213 /I213
  305. X  214 /I214 215 /I215 216 /I216 217 /I217 218 /I218
  306. X  219 /blockfull 220 /blockbot 221 /blockleft 222 /blockright 223 /blocktop
  307. X  224 /alpha 225 /beta 226 /Gamma 227 /pi 228 /Sigma 229 /sigma 230 /mu
  308. X  231 /tau 232 /Phi 233 /Theta 234 /Omega 235 /delta 236 /infinity
  309. X  237 /emptyset 238 /element 239 /intersection 240 /equivalence 241 /plusminus
  310. X  242 /greaterequal 243 /lessequal 244 /integraltop 245 /integralbot
  311. X  246 /divide 247 /approxequal 248 /degree 249 /bullet 250 /dotmath
  312. X  251 /radical 252 /supern 253 /super2 254 /slug
  313. X]
  314. XEncodingLoad
  315. X% show string from the Symbol font
  316. X/SymbolShow { % char_code matrix --
  317. X  /Symbol findfont exch makefont setfont
  318. X  0 0 moveto show
  319. X} def
  320. X% show string from the Courier font
  321. X/CourierShow { % char_code matrix --
  322. X  /Courier findfont exch makefont setfont
  323. X  0 0 moveto show
  324. X} def
  325. X% Build Character into cache
  326. X/BuildChar {  %  font_dictionary char_code --
  327. X  exch begin                      % this font dictionary
  328. X  Encoding exch get               % get character name
  329. X  gsave                           % save graphics state
  330. X  0.5 setlinewidth          % width of stroked lines
  331. X  newpath
  332. X  6 0                             % width vector (mono spaced)
  333. X  0 -2 6 8 setcachedevice         % cache this bounding box
  334. X  CharProcs exch get              % get procedure
  335. X  exec                            % draw it
  336. X  grestore                  % restore graphics state
  337. X  end                             % end of font dictionary
  338. X} def
  339. X% add CharProcs dictionary which describes each character
  340. X/CharProcs 118 dict dup begin
  341. X/.notdef {} def
  342. X/blank {} def
  343. X/face {5.75 4.5 M 4 4.5 1.75 0 90 arc 2 4.5 1.75 90 180 arc
  344. X  2 1.5 1.75 180 270 arc 4 1.5 1.75 270 360 arc 5.75 4.5 lineto
  345. X  5.25 4.5 M  4 1.5 1.25 360 270 arcn 2 1.5 1.25 270 180 arcn
  346. X  2 4.5 1.25 180 90 arcn 4 4.5 1.25 90 0 arcn 5.25 4.5 lineto
  347. X  2.5 4 M 2 4 0.5 360 0 arcn
  348. X  4.5 4 M 4 4 0.5 360 0 arcn
  349. X  1.375 2.185 M 3 5 3.25 240 300 arc 3 5 3.75 300 240 arcn closepath
  350. X  fill} def
  351. X/facereverse {5.75 4.5 M 4 4.5 1.75 0 90 arc 2 4.5 1.75 90 180 arc
  352. X  2 1.5 1.75 180 270 arc 4 1.5 1.75 270 360 arc 5.75 4.5 lineto
  353. X  2.5 4 M 2 4 0.5 360 0 arcn
  354. X  4.5 4 M 4 4 0.5 360 0 arcn
  355. X  1.375 2.185 M 3 5 3.25 240 300 arc 3 5 3.75 300 240 arcn closepath
  356. X  fill} def
  357. X/heart {(\251) [8 0 0 10 0 0] SymbolShow} def
  358. X/diamond {(\250) [8 0 0 10 0 0] SymbolShow} def
  359. X/club {(\247) [8 0 0 10 0 0] SymbolShow} def
  360. X/spade {(\252) [8 0 0 10 0 0] SymbolShow} def
  361. X/disc {3 3 1.5 0 360 arc closepath fill} def
  362. X/discreverse {0 -2 M 6 -2 L 6 8 L 0 8 L closepath
  363. X  4.5 3 M 3 3 1.5 360 0 arcn closepath fill} def
  364. X/circle {3 3 2.5 0 360 arc 3 3 2 360 0 arcn fill} def
  365. X/circlereverse {0 -2 M 6 -2 L 6 8 L 0 8 L closepath
  366. X  5.5 3 M 3 3 2.5 360 0 arcn 5 3 M 3 3 2 0 360 arc fill} def
  367. X/male {2.5 1.5 1.5 0 360 arc
  368. X  2.5 3 M 5 5.5 L 3 5.5 M 5 5.5 L 5 3.5 L stroke } def
  369. X/female {3 4.5 1.5 0 360 arc 3 3 M 3 0 L 1.5 1.5 M 4.5 1.5 L stroke} def
  370. X/note {1.5 1.5 1 0 360 arc fill
  371. X  2.25 1.5 M 2.25 6 L 5 6 L 5 5 L 2.25 5 L stroke} def
  372. X/notes {1.5 1.5 1 0 360 arc fill 4.25 1.5 1 0 360 arc fill
  373. X  2.25 1.5 M 2.25 6 L 5 6 L 5 5 L 2.25 5 L 5 6 M 5 1.5 L stroke} def
  374. X/lamp {3 3 1 0 360 arc 3 6 M 3 4 L 3 0 M 3 2 L
  375. X  4 4 M 5 5 L 2 4 M 1 5 L 2 2 M 1 1 L 4 2 M 5 1 L stroke} def
  376. X/triangleleft  {5 0 M 1 3 L 5 6 L 5 0 L closepath fill} def
  377. X/triangleright {1 0 M 1 6 L 5 3 L 1 0 L closepath fill} def
  378. X/arrowupdown {3 0.5 M 3 5.5 L stroke
  379. X  1.5 4.5 M 3 6 L 4.5 4.5 L closepath fill
  380. X  1.5 1.5 M 3 0 L 4.5 1.5 L closepath fill} def
  381. X/exclamdouble {(!) [10 0 0 10 -1.5 0] CourierShow
  382. X  (!) [10 0 0 10  1.5 0] CourierShow} def
  383. X/paragraph {(\266) [10 0 0 10 0 0] CourierShow} def
  384. X/section {(\247) [10 0 0 10 0 0] CourierShow} def
  385. X/I022 {0 0 M 0 1.5 L 6 1.5 L 6 0 L 0 0 L closepath fill} def % cursor ??
  386. X/arrowupdownunder {CharProcs /arrowupdown get exec
  387. X  1.5 -0.25 M 4.5 -0.25 L stroke} def
  388. X/arrowup    {1.5 4.5 M 3 6 L 4.5 4.5 L closepath fill
  389. X  3 0 M 3 4.5 L stroke} def
  390. X/arrowdown  {1.5 1.5 M 3 0 L 4.5 1.5 L closepath fill
  391. X  3 1.5 M 3 6 L stroke} def
  392. X/arrowleft  {2 4.5 M 0.5 3 L 2 1.5 L closepath fill
  393. X  2 3 M 5.25 3 L stroke} def
  394. X/arrowright {4 4.5 M 5.5 3 L 4 1.5 L closepath fill
  395. X  0.25 3 M 4.5 3 L stroke} def
  396. X/I028 {0.4 setlinewidth 1 6 M 1 4 L 5 4 L stroke} def % logical ??
  397. X/arrowboth {2 3 M 4.5 3 L stroke
  398. X  2 4.5 M 0.5 3 L 2 1.5 L closepath fill
  399. X  4 4.5 M 5.5 3 L 4 1.5 L closepath fill} def
  400. X/triangleup   {1 1 M 3 5 L 5 1 L 1 1 L closepath fill} def
  401. X/triangledown {1 5 M 3 1 L 5 5 L 1 5 L closepath fill} def
  402. X% Strays
  403. X/delete {1 1 M 5 1 L 5 3 L 3 5 L 1 3 L 1 1 L closepath stroke} def
  404. X/peseta { /Courier findfont [6 0 0 10 0 0] makefont setfont
  405. X  0 0 M (P) show 2.5 0 M (t) show} def
  406. X/I169 {0.4 setlinewidth 1 2 M 1 4 L 5 4 L stroke} def % logical ??
  407. X/logicalnot {0.4 setlinewidth 1 4 M 5 4 L 5 2 L stroke} def
  408. X/half { /Courier findfont [5 0 0 5 0 0] makefont setfont 0 4 M (1) show
  409. X  2.5 0 M (2) show 0.2 setlinewidth 0.5 2 M 5.5 5 L stroke} def
  410. X/quarter { /Courier findfont [5 0 0 5 0 0] makefont setfont 0 4 M (1) show
  411. X  2.5 0 M (4) show 0.2 setlinewidth 0.5 2 M 5.5 5 L stroke} def
  412. X% Grey Blobs
  413. X/lightgrey {1 setlinewidth
  414. X  -0.5 2 8 {0 3 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  415. X  -1.5 2 8 {1.5 3 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  416. X  stroke} def
  417. X/mediumgrey {1 setlinewidth
  418. X  -0.5 2 8 {0 2 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  419. X  -1.5 2 8 {1 2 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  420. X  stroke} def
  421. X/darkgrey {1 setlinewidth
  422. X  -0.5 2 8 {0 exch M 2   0 rlineto 1 0 rmoveto 2 0 rlineto} for
  423. X  -1.5 2 8 {0 exch M 0.5 0 rlineto 1 0 rmoveto 2 0 rlineto
  424. X   1 0 rmoveto 1.5 0 rlineto} for stroke} def
  425. X% Box line line segments
  426. X/I179 {3 -2 M 3 8 L stroke} def
  427. X/I180 {3 -2 M 3 8 L 0 4 M 3 4 L stroke} def
  428. X/I181 {3 -2 M 3 8 L 0 4 M 3 4 L 0 2 M 3 2 L stroke} def
  429. X/I182 {2 -2 M 2 8 L 4 -2 M 4 8 L 0 4 M 2 4 L stroke} def
  430. X/I183 {0 4 M 4 4 L 4 -2 L 2 -2 M 2 4 L stroke} def
  431. X/I184 {0 4 M 3 4 L 3 -2 L 0 2 M 3 2 L stroke} def
  432. X/I185 {4 -2 M 4 8 L 0 4 M 2 4 L 2 8 L 0 2 M 2 2 L 2 -2 L stroke} def
  433. X/I186 {2 -2 M 2 8 L 4 -2 M 4 8 L stroke} def
  434. X/I187 {0 4 M 4 4 L 4 -2 L 0 2 M 2 2 L 2 -2 L stroke} def
  435. X/I188 {0 2 M 4 2 L 4 8 L 0 4 M 2 4 L 2 8 L stroke} def
  436. X/I189 {0 4 M 4 4 L 4 8 L 2 4 M 2 8 L stroke} def
  437. X/I190 {0 2 M 3 2 L 3 8 L 0 4 M 3 4 L stroke} def
  438. X/I191 {0 4 M 3 4 L 3 -2 L stroke} def
  439. X/I192 {3 8 M 3 4 L 6 4 L stroke} def
  440. X/I193 {0 4 M 6 4 L 3 4 M 3 8 L stroke} def
  441. X/I194 {0 4 M 6 4 L 3 4 M 3 -2 L stroke} def
  442. X/I195 {3 -2 M 3 8 L 3 4 M 6 4 L stroke} def
  443. X/I196 {0 4 M 6 4 L stroke} def
  444. X/I197 {0 4 M 6 4 L 3 -2 M 3 8 L stroke} def
  445. X/I198 {3 -2 M 3 8 L 3 4 M 6 4 L 3 2 M 6 2 L stroke} def
  446. X/I199 {2 -2 M 2 8 L 4 -2 M 4 8 L 4 4 M 6 4 L stroke} def
  447. X/I200 {2 8 M 2 2 L 6 2 L 4 8 M 4 4 L 6 4 L stroke} def
  448. X/I201 {2 -2 M 2 4 L 6 4 L 4 -2 M 4 2 L 6 2 L stroke} def
  449. X/I202 {0 2 M 6 2 L 0 4 M 2 4 L 2 8 L 4 8 M 4 4 L 6 4 L stroke} def
  450. X/I203 {0 4 M 6 4 L 0 2 M 2 2 L 2 -2 L 4 -2 M 4 2 L 6 2 L stroke} def
  451. X/I204 {2 -2 M 2 8 L 4 8 M 4 4 L 6 4 L 4 -2 M 4 2 L 6 2 L stroke} def
  452. X/I205 {0 4 M 6 4 L 0 2 M 6 2 L stroke} def
  453. X/I206 {0 4 M 2 4 L 2 8 L 4 8 M 4 4 L 6 4 L 6 2 M 4 2 L 4 -2 L
  454. X  2 -2 M 2 2 L 0 2 L stroke} def
  455. X/I207 {0 2 M 6 2 L 0 4 M 6 4 L 3 4 M 3 8 L stroke} def
  456. X/I208 {0 4 M 6 4 L 2 4 M 2 8 L 4 4 M 4 8 L stroke} def
  457. X/I209 {0 4 M 6 4 L 0 2 M 6 2 L 3 2 M 3 -2 L stroke} def
  458. X/I210 {0 4 M 6 4 L 2 4 M 2 -2 L 4 4 M 4 -2 L stroke} def
  459. X/I211 {2 8 M 2 4 L 6 4 L 4 8 M 4 4 L stroke} def
  460. X/I212 {3 8 M 3 2 L 6 2 L 3 4 M 6 4 L stroke} def
  461. X/I213 {3 -2 M 3 4 L 6 4 L 3 2 M 6 2 L stroke} def
  462. X/I214 {2 -2 M 2 4 L 6 4 L 4 -2 M 4 4 L stroke} def
  463. X/I215 {2 -2 M 2 8 L 4 -2 M 4 8 L 0 4 M 6 4 L stroke} def
  464. X/I216 {3 -2 M 3 8 L 0 4 M 6 4 L 0 2 M 6 2 L stroke} def
  465. X/I217 {0 4 M 3 4 L 3 8 L stroke} def
  466. X/I218 {3 -2 M 3 4 L 6 4 L stroke} def
  467. X% Block segments
  468. X/blockfull  {0 -2 M 6 -2 L 6 8 L 0 8 L 0 -2 L closepath fill} def
  469. X/blockbot   {0 -2 M 6 -2 L 6 3 L 0 3 L 0 -2 L closepath fill} def
  470. X/blockleft  {0 -2 M 3 -2 L 3 8 L 0 8 L 0 -2 L closepath fill} def
  471. X/blockright {3 -2 M 6 -2 L 6 8 L 3 8 L 3 -2 L closepath fill} def
  472. X/blocktop   {0 3 M 6 3 L 6 8 L 0 8 L 0 3 L closepath fill} def
  473. X% from symbol font
  474. X/alpha {(a) [9.5 0 0 10 0 0] SymbolShow} def
  475. X/beta {(b) [10 0 0 10 0 0] SymbolShow} def
  476. X/Gamma {(G) [10 0 0 10 0 0] SymbolShow} def
  477. X/pi {(p) [10 0 0 10 0 0] SymbolShow} def
  478. X/Sigma {(S) [10 0 0 10 0 0] SymbolShow} def
  479. X/sigma {(s) [10 0 0 10 0 0] SymbolShow} def
  480. X/mu {(m) [10 0 0 10 0 0] SymbolShow} def
  481. X/tau {(t) [10 0 0 10 0.5 0] SymbolShow} def
  482. X/Phi {(F) [8 0 0 10 0 0] SymbolShow} def
  483. X/Theta {(Q) [8 0 0 10 0 0] SymbolShow} def
  484. X/Omega {(W) [8 0 0 10 0 0] SymbolShow} def
  485. X/delta {(d) [10 0 0 10 0 0] SymbolShow} def
  486. X/infinity {(\245) [8.5 0 0 10 0 0] SymbolShow} def
  487. X/emptyset {(\306) [7.5 0 0 10 0 0] SymbolShow} def
  488. X/element {(\316) [8.5 0 0 10 0 0] SymbolShow} def
  489. X/intersection {(\307) [8 0 0 10 0 0] SymbolShow} def
  490. X/equivalence {(\272) [10 0 0 10 0 0] SymbolShow} def
  491. X/plusminus {(\261) [10 0 0 10 0 0] SymbolShow} def
  492. X/greaterequal {(\263) [10 0 0 10 0 0] SymbolShow} def
  493. X/lessequal {(\243) [10 0 0 10 0 0] SymbolShow} def
  494. X% integral pieces
  495. X/integraltop {3 -2 M 3 6 L 4 6 1 180 0 arcn stroke} def
  496. X/integralbot {3 8 M 3 0 L 2 0 1 0 180 arcn stroke} def
  497. X% from symbol font
  498. X/divide {(\270) [10 0 0 10 0 0] SymbolShow} def
  499. X/approxequal {(\273) [10 0 0 10 0 0] SymbolShow} def
  500. X/degree {(\260) [10 0 0 10 0 0] SymbolShow} def
  501. X/bullet {(\267) [10 0 0 10 0 0] SymbolShow} def
  502. X/dotmath {(\327) [10 0 0 10 0 0] SymbolShow} def
  503. X/radical {(\326) [10 0 0 10 0 0] SymbolShow} def
  504. X% from courier font
  505. X/supern { /Courier findfont [7 0 0 5 0 0] makefont setfont
  506. X  0 4 moveto (n) show } def
  507. X/super2 { /Courier findfont [7 0 0 5 0 0] makefont setfont
  508. X  0 4 moveto (2) show } def
  509. X% slug
  510. X/slug {1.5 0 M 4.5 0 L 4.5 5 L 1.5 5 L 1.5 0 L closepath fill} def
  511. Xend readonly def % end CharProcs
  512. Xcurrentdict end  % end the font dictionary, and leave it on the stack
  513. Xdup /FontName get exch definefont pop % define the new font
  514. X%%EndFont
  515. X% end of epsonps.pro
  516. END_OF_epsonps.pro
  517. if test 17037 -ne `wc -c <epsonps.pro`; then
  518.     echo shar: \"epsonps.pro\" unpacked with wrong size!
  519. fi
  520. # end of overwriting check
  521. fi
  522. if test -f Makefile -a "${1}" != "-c" ; then 
  523.   echo shar: Will not over-write existing file \"Makefile\"
  524. else
  525. echo shar: Extracting \"Makefile\" \(554 characters\)
  526. sed "s/^X//" >Makefile <<'END_OF_Makefile'
  527. X#
  528. X# Makefile for epsonps.c
  529. X# 
  530. X# for Turbo C, use 
  531. X#   tcc epsonps.c
  532. X# for Microsoft C 5.1, use
  533. X#   cl /W3 /DANSI epsonps.c
  534. X#
  535. XMANDIR = /usr/man/man1
  536. XBINDIR = /usr/local/bin
  537. X
  538. Xepsonps: epsonps.c
  539. X    cc epsonps.c -o epsonps
  540. X
  541. Xinstall: epsonps epsonps.pro epsonps.1
  542. X    install -c -m 755 epsonps     $(BINDIR)/epsonps
  543. X    install -c -m 644 epsonps.pro $(BINDIR)/epsonps.pro
  544. X    install -c -m 644 epsonps.1   $(MANDIR)/epsonps.1
  545. X    
  546. Xshar: README epsonps.c epsonps.pro epsonps.1 Makefile
  547. X    shar README epsonps.c > epsonps.sh1
  548. X    shar epsonps.1 epsonps.pro Makefile > epsonps.sh2
  549. END_OF_Makefile
  550. if test 554 -ne `wc -c <Makefile`; then
  551.     echo shar: \"Makefile\" unpacked with wrong size!
  552. fi
  553. # end of overwriting check
  554. fi
  555. echo shar: End of shell archive.
  556. exit 0
  557.  
  558. exit 0 # Just in case...
  559. -- 
  560. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  561. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  562. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  563. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  564.